package com.nageoffer.jobtrain.judge.common.constant;

/**
 * 用户答题常量类
 */
public class UserJudgeConstant {
    /**
     * 错误答案提示信息：未完全通过所有用例
     */
    public static final String ERROR_ANSWER = "未完全通过所有用例";

    /**
     * 内存超出限制提示信息：超出内存限制，请优化代码
     */
    public static final String OUT_OF_MEMORY = "超出内存限制，请优化代码";

    /**
     * 时间超出限制提示信息：运行时间超出限制，请优化代码
     */
    public static final String OUT_OF_TIME = "运行时间超出限制，请优化代码";

    /**
     * 答案错误时的分数：0
     */
    public static final Integer ERROR_SCORE = 0;

    /**
     * 答题正确默认分数：20 - 根据题目难度进行增加分数，0 * 20；1 * 20；2 * 20；
     */
    public static final Integer SUCCESS_DEFAULT_SCORE = 20;

    /**
     * 用户代码存储的默认目录
     */
    public static final String EXAM_CODE_DIR = "user-code";

    /**
     * 用户代码池存储目录
     */
    public static final String CODE_DIR_POOL = "user-code-pool";

    /**
     * Docker 内部代码存储路径
     */
    public static final String DOCKER_USER_CODE_DIR = "/usr/share/java";

    /**
     * 用户代码 Java 类名：Solution.java
     */
    public static final String USER_CODE_JAVA_CLASS_NAME = "Solution.java";

    /**
     * 用户代码 Java 文件名称（不带后缀）：Solution
     */
    public static final String USER_CODE_JAVA_FILE_NAME = "Solution";

    /**
     * Java 执行环境的 Docker 镜像
     */
    public static final String JAVA_ENV_IMAGE = "openjdk:8-jdk-alpine";

    /**
     * Java 容器路径前缀
     */
    public static final String JAVA_CONTAINER_PREFIX = "/";

    /**
     * Java 容器名称
     */
    public static final String JAVA_CONTAINER_NAME = "oj-jdk";

    /**
     * Docker 中编译 Java 的命令
     */
    public static final String[] DOCKER_JAVAC_CMD = new String[]{"javac", "/usr/share/java/Solution.java"};

    /**
     * Docker 中运行 Java 的命令
     * 实际运行命令：java -cp /usr/share/java Solution
     */
    public static final String[] DOCKER_JAVA_EXEC_CMD = new String[]{"java", "-cp", DOCKER_USER_CODE_DIR, USER_CODE_JAVA_FILE_NAME};
}
